<?
class nieuwsController extends secured_admin_action{
	
	protected function initController(){
		$this -> view -> itemName = "nieuwsberichten";
	}


	public function indexAction(){
	
		require_once('./application/models/nieuwsModel.php');
		
		// template setten		
		$this -> view -> setTpl('gebruiker_items_list.php');
		$this -> view -> action = 'Nieuwsberichten';
		$this -> view -> toevoegenText = "Nieuwsberichten toevoegen";
		$this -> view -> toevoegenLink = "/beheerder/nieuws/toevoegen/";
		$this -> view -> itemName = "nieuwsberichten";
		
		
		$model = nieuwsModel::getInstance($this -> conn);
		
		$list = new item_list($model -> getNieuwsBeheerder(), 5);
		$list -> setEditUrl('/beheerder/nieuws/bewerken');
		$list -> setDeleteUrl('/beheerder/nieuws/verwijderen');
		$list -> setPageUrl('/beheerder/nieuws');
		
		if($this -> request -> getParam(0) != NULL){
			$page = $this -> request -> getParam(0);
		}else{
			$page = 0;
		}
		
		
		if($list -> isEmpty()){
		
			$this -> view -> isEmpty = true;
		
		}

		
		$this -> view -> itemList = $list -> renderPage($page);
		
		if($list -> getNextPage() != NULL){
	
			$this -> view -> nextLink = $list -> getNextPage();
		}
		if($list -> getPrevPage() != NULL){
	
			$this -> view -> prevLink = $list -> getPrevPage();
		}
		
		$this -> view -> render();
	
	}
	
	
	public function toevoegenAction(){
		// template setten		
		$this -> view -> setTpl('gebruiker_items.php');
		// jquery style laden
		$this -> view -> addStyle(view::PATH_TO_STYLE.'beheerder.css');
		// wysiwyg script laden
		$this -> view -> addScript(view::PATH_TO_SCRIPT.'editor/tiny_mce.js');
		// titel voor de view meegegeven
		$this -> view -> action = "nieuws toevoegen";
		
		// formulier aanmaken
		$form = new form('frm_nieuws_toevoegen', form::POST);
		
		// elementen aanmaken
		$titel = new form_element_textField('frm_titel');
		$bericht = new form_element_textArea('frm_nieuws');
		$btn  = new form_element_button('frm_submit');
		
		// labels toekenen
		$titel -> addLabel('Titel:');
		$bericht -> addLabel('Nieuws bericht:');
		
		// btn value
		$btn -> setValue('toevoegen');
		
		// validatie rules toekennen
		
		$titel -> addRule('notNull', 'Je moet een titel invoeren');
		$bericht -> addRule('notNull', 'Je moet een nieuws bericht invoeren');
		
		// zorgen dat de textarea de juiste class meekrijgt 
		$bericht -> getHtml() -> setAttribute('class', 'wysiwyg');
		
		// elementen toevoegen
		$form -> addElementRange(array($titel,$bericht,$btn));
		
		
		
		if($form -> isSend()){
			
			// hier is alles in orde dus kunnen we de data verwerken
			if($form -> isValid()){
				$nieuws = new item_nieuws($this -> conn);
				$nieuws -> geb_id = $this -> user -> id;
				$nieuws -> title = $titel -> getSend();
				$nieuws -> nieuws_text = $bericht -> getSend();
				
				$nieuws -> insert();
				
			
			// succes bericht meegeven aan de view 
			$this -> view -> succes = 'Nieuwsbericht is succesvol toegevoegd';
			}else{
			// hier gaat iets fout
			
			$this -> view -> errors = $form -> getErrors();
			
			
			}
		
		
		
		}
		
		
		
		// form object doorsturen naar de view
		$this -> view -> form = $form;
		// parsen ...
		$this -> view -> render();
	
	}

public function bewerkenAction()
{
		$nieuws = new item_nieuws($this -> conn);
		$nieuws -> geb_id = $this -> user -> id;
		$nieuws -> id = $this -> request -> getParam(0);
		$nieuws -> fill();
		
		
		
		// template setten		
		$this -> view -> setTpl('gebruiker_items.php');
		// jquery style laden
		$this -> view -> addStyle(view::PATH_TO_STYLE.'beheerder.css');
		// wysiwyg script laden
		$this -> view -> addScript(view::PATH_TO_SCRIPT.'editor/tiny_mce.js');
		// titel voor de view meegegeven
		$this -> view -> action = "nieuws bewerken";
		
		// formulier aanmaken
		$form = new form('frm_nieuws_bewerken', form::POST);
		
		// elementen aanmaken
		$titel = new form_element_textField('frm_titel');
		$bericht = new form_element_textArea('frm_nieuws');
		$btn  = new form_element_button('frm_submit');
		
		// labels toekenen
		$titel -> addLabel('Titel:');
		$bericht -> addLabel('Nieuws bericht:');
		
		// btn value
		
		$titel -> setValue($nieuws -> title);
		$bericht -> setValue($nieuws -> nieuws_text);
		$btn -> setValue('wijzigen');
		
		// validatie rules toekennen
		
		$titel -> addRule('notNull', 'Je moet een titel invoeren');
		$bericht -> addRule('notNull', 'Je moet een nieuws bericht invoeren');
		
		// zorgen dat de textarea de juiste class meekrijgt 
		$bericht -> getHtml() -> setAttribute('class', 'wysiwyg');
		
		// elementen toevoegen
		$form -> addElementRange(array($titel,$bericht,$btn));
		
		
		
		if($form -> isSend()){
			
			// hier is alles in orde dus kunnen we de data verwerken
			if($form -> isValid()){
				$nieuws -> title = $titel -> getSend();
				$nieuws -> nieuws_text = $bericht -> getSend();
				
				
				$nieuws -> update();
				
				$titel -> setValue($nieuws -> title);
				$bericht -> setValue($nieuws -> nieuws_text);
			
			// succes bericht meegeven aan de view 
			$this -> view -> succes = 'Nieuwsbericht is succesvol gewijzigd';
			}else{
			// hier gaat iets fout
			
			$this -> view -> errors = $form -> getErrors();
			
			
			}
		
		
		
		}
		
		
		
		// form object doorsturen naar de view
		$this -> view -> form = $form;
		// parsen ...
		$this -> view -> render();
	
	
	}
	public function verwijderenAction()
	{
		$this -> view -> setTpl('gebruiker_items_verwijderen.php');
		$this -> view -> beheerderContent = true;
		
		$this -> view -> addStyle(view::PATH_TO_STYLE.'beheerder.css');
		
		$this -> view -> action = "nieuws verwijderen";
		$this -> view -> module = "nieuws";
	
		$this -> view -> id = $this -> request -> getParam(0);
	
		$this -> view -> render();
		
	}

	public function verwijderAction()
	{
		$nieuws = new item_nieuws ($this -> conn);
		$nieuws -> id = $this -> request -> getParam(0);
		$nieuws -> verwijder();
		$this -> redirect('/beheerder/nieuws/');
}
}


?>